home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 September / PCWorld_2008-09_cd.bin / v cisle / sadanastroju / IE7proSetup_2.3.exe / IEProRs.dll / JS / EASY.JS
Text File  |  2008-04-25  |  18KB  |  612 lines

  1. function getObject(objName)
  2. {
  3.     if(document.getElementById)
  4.     {
  5.         return eval('document.getElementById("' + objName + '")');
  6.     }
  7.     else if(document.layers)
  8.     {
  9.         return eval("document.layers['" + objName +"']");
  10.     }
  11.     else
  12.     {
  13.         return eval('document.all.' + objName);
  14.     }
  15. }
  16.  
  17. function canDoAction(o,e) {
  18.     if(!o) { return false; }
  19.     switch (o.tagName) {
  20.         case "INPUT":
  21.             if (o.type=="button"||o.type=="submit") { return false; }
  22.         case "TEXTAREA":
  23.         case "SELECT":
  24.             return true;
  25.         default:
  26.             return false;
  27.     }
  28. }
  29.  
  30. function getData(name, remplacements) {
  31.     var res = getObject("data_" + name).firstChild.data;
  32.     for (key in remplacements) {
  33.         if (remplacements.hasOwnProperty(key)) {
  34.             res = res.split("<\?" + key + "?\>").join(remplacements[key]);
  35.         }
  36.     }
  37.     if(name == "empty") {
  38.      res = res.replace("_HomeAddTip_",localeTable['home_addtip']);
  39.     }
  40.     return res;
  41. }
  42.  
  43. function getTop(el) {
  44.     //var el = getObject(id);
  45.     var top = 0;
  46.     while (el.tagName=="P") {
  47.         el=el.parentNode;
  48.     }
  49.     while (el) {
  50.         top+=el.offsetTop;
  51.         el=el.offsetParent;
  52.     }
  53.     return top;
  54. }
  55.  
  56. function getLeft(el) {
  57.     //var el = getObject(id);
  58.     var top = 0;
  59.     while (el.tagName=="P") {
  60.         el=el.parentNode;
  61.     }
  62.     while (el) {
  63.         top+=el.offsetLeft;
  64.         el=el.offsetParent;
  65.     }
  66.     return top;
  67. }
  68.  
  69. /* <DATA> */
  70. var pageThumbs = [];
  71. var newTab = true;
  72. var searchBar = true;
  73. var pageCount = 24;
  74. var cols = 3; var rows = 3;
  75.  
  76. for(var i=0; i<24; i++) {
  77.     pageThumbs[i] = new Array('', '', '');    //url, imgsrc, title
  78. }
  79.  
  80. var easyHome = {};
  81.  
  82. var localeTable = {
  83.     home_title:    'Easy homepage',
  84.     home_addtip:    'Click to add a web page',
  85.     home_config:    'Config Easy Homepage',
  86.     home_newtab:    'Open in new Tab',
  87.     search_submit:  'Search',
  88.     input_tip:        'Please input URL:',
  89.     input_title:    'Select/input the easyhome URL',
  90.     input_ok:        'OK',
  91.     input_cancel:    'Cancel',
  92.     home_showsearch:    'Show search bar',
  93.     home_background:    'In background',
  94.     home_layout:    'Layout'
  95. };
  96. /* </DATA> */
  97. function openConfig() {
  98.     getObject("confirm").style.display    = (getObject("confirm").style.display == "" ) ? "none" : "";
  99.     getObject("dlg").style.display    = "block";
  100.     getObject("confirm").focus();
  101.     for (var i=1; i<25; i++)
  102.     {
  103.         try { getObject("Image"+i).style.filter="gray"; } catch (ex) {}
  104.     }
  105. }
  106.  
  107.  
  108. function closeConfig() {
  109.     getObject("confirm").style.display="none";
  110.     getObject("dlg").style.display="none";
  111.     for (var i=1; i<25; i++) {
  112.         try { getObject("Image"+i).style.filter=""; } catch (ex) {}
  113.     }
  114. }
  115. function saveSettings() {
  116.     function sv(id) {
  117.         var sel = getObject(id);
  118.         return sel.options[sel.selectedIndex].text;
  119.     }
  120.     
  121.     newTab=getObject("check1").checked;
  122.     searchBar=getObject("check2").checked;
  123.     BackgroundOpen=getObject("check4").checked;
  124.     
  125.     rows=parseInt(sv("rowsCount"));
  126.     cols=parseInt(sv("colsCount"));
  127.     pageCount=(rows*cols);
  128.     
  129.     PRO_setValue("EasyHome_newTab", String(newTab));
  130.     PRO_setValue("EasyHome_searchBar", String(searchBar));
  131.     PRO_setValue("EasyHome_BackgroundOpen", String(BackgroundOpen));
  132.     PRO_setValue("EasyHome_pageCount", String(pageCount));
  133.     PRO_setValue("EasyHome_rowsCount", String(rows));
  134.     PRO_setValue("EasyHome_colsCount", String(cols));
  135.     if (searchBar) {
  136.         getObject("searchBarPanel").style.display="";
  137.     } else {
  138.         getObject("searchBarPanel").style.display="none";
  139.     }
  140.     for (var i=1; i<25; i++) {
  141.         getObject("outbox-"+i).style.display=(i>pageCount?"none":"inline");
  142.     }
  143.     resizeContent();
  144. }
  145.  
  146. function savePrefs() {
  147.     
  148.     var s = '';
  149.     for(var i=0; i<pageCount; i++){
  150.         s += pageThumbs[i][0] + '\n';
  151.     }
  152.     easyHome.homePrefs = s;
  153. }
  154.  
  155. var canOpen = true; var buttonP=false;
  156. function openBox(index,e) {
  157.     if (getObject("menu_nav").style.display=="") {
  158.         return true;
  159.     }
  160.     e = window.event;
  161.     e.returnValue = false;
  162.     e.cancelBubble = true;
  163.     
  164.     if (buttonP) {
  165.         buttonP=false;
  166.         return false;
  167.     }
  168.     
  169.     var url = pageThumbs[index-1][0];
  170.     if(url != '') {
  171.         if (!canOpen) { return true; }
  172.         openURL(url);
  173.         canOpen = false;
  174.         setTimeout("canOpen=true", 250);
  175.     } else {
  176.         editBox(index)
  177.     }
  178. }
  179.  
  180. function openURL(url) {
  181.     function inNewTab() {
  182.         if(newTab) { return true; }
  183.         if (window.event) {
  184.             return ((window.event.button==3) || (window.event.button==4));
  185.         } else {
  186.             return false;
  187.         }
  188.     }
  189.  
  190.     if (BackgroundOpen){
  191.         PRO_openInTab(url,inNewTab()?2:0);
  192.     } else {
  193.         PRO_openInTab(url,inNewTab()?1:0);
  194.     }
  195. }
  196.  
  197. function closeBox(index, e) {
  198.     var tid = getObject('Title' + index);
  199.     if(tid){
  200.         tid.innerHTML = "";
  201.     }
  202.     getObject("imgshow"+index).innerHTML=getData("empty", {index:index});
  203.     getObject("box-bottons-inner"+index).innerHTML="";
  204.     pageThumbs[index-1][0] = "";
  205.     savePrefs();
  206. }
  207. var menuIndex=1;
  208. function menuBox(index, e) {
  209.     menuIndex=index;
  210.     var left = (e.offsetX+getLeft(e.srcElement)) + "px";
  211.     var top = (e.offsetY+getTop(e.srcElement)) + "px";
  212.     var style = getObject("menu_nav").style;
  213.     style.top = top;
  214.     style.left = left;
  215.     style.display = "";
  216.     var updateTime = getUpdateTime(index);
  217.     getObject("menu-1").style.background="";
  218.     getObject("menu15000").style.background="";
  219.     getObject("menu30000").style.background="";
  220.     getObject("menu60000").style.background="";
  221.     getObject("menu300000").style.background="";
  222.     getObject("menu900000").style.background="";
  223.     getObject("menu1800000").style.background="";
  224.     getObject("menu3600000").style.background="";
  225.     getObject("menu86400000").style.background="";  
  226.     getObject("menu"+updateTime).style.background="#daf0ff";
  227. }
  228. function closeMenu() {
  229.     var style = getObject("menu_nav").style;
  230.     style.display = "none";
  231. }
  232. function refreshBox(index) {
  233.     var url = pageThumbs[index-1][0];
  234.     if(url != '') {
  235.         setLastUpdate(index, (new Date()).getTime());
  236.         var iid = getObject('imgshow' + index).getElementsByTagName("img")[0];
  237.         easyHome.captureImage(index, url, true, 30);
  238.         if(iid){
  239.                     getObject('box-bottons-inner' + index).innerHTML="<img src=img/loading2.gif border=0>";
  240.                 }
  241.     }
  242. }
  243. function refreshBoxAll() {
  244.     for (var i=1; i<pageCount+1; i++) {
  245.       try{
  246.         refreshBox(i);
  247.       } catch(ex) {}
  248.     }  
  249. }
  250. function editBox(index) {
  251.     var url = pageThumbs[index-1][0];
  252.  
  253.     var tTable = {
  254.         itab:        localeTable,
  255.         ifav:        easyHome.getFavorites(),
  256.         iurl:        url,
  257.         ihis:        easyHome.getTabHistory()
  258.     };
  259.     //pop input dialog
  260.     url = window.location.href;
  261.     url = url.substr(0, url.lastIndexOf('/')+1);
  262.     url += "inputurl.html";
  263.     url = PRO_showModalDialog(url, tTable, 'dialogWidth:500px; dialogHeight:404px; scroll: no; status: no;');
  264.     if(url == undefined || url == '') return;
  265.     setUpdateTime(index, "-1");
  266.     
  267.     
  268.     var el = getObject("imgshow"+index);
  269.  
  270.     try {
  271.         el.getElementsByTagName("img")[0].src="img/loading.gif";
  272.     el.getElementsByTagName("a")[0].href=url;
  273.     } catch (ex) {
  274.         el.innerHTML = getData("image", {"index":index})
  275.         el.getElementsByTagName("img")[0].src="img/loading.gif";
  276.     el.getElementsByTagName("a")[0].href=url;
  277.     }
  278.  
  279.     getObject("box-bottons-inner"+index).innerHTML= getData("buttons", {"index":index});
  280.     
  281.     pageThumbs[index-1][0] = url;
  282.     refreshBox(index);
  283.     //save prefs
  284.     savePrefs();
  285. }
  286.  
  287. sfHover = function() {
  288.     var sfEls = getObject("nav").getElementsByTagName("LI");
  289.     for (var i=0; i<sfEls.length; i++) {
  290.         sfEls[i].onmouseover=function() {
  291.             this.className+=" sfhover";
  292.         }
  293.         sfEls[i].onmouseout=function() {
  294.             this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
  295.         }
  296.     }
  297. }
  298.  
  299. window.attachEvent("onload", sfHover);
  300. document.attachEvent("onclick", closeMenu);
  301.  
  302. /* Handles */
  303. function onCaptureImage(i, url, imgurl, title)
  304. {
  305.     pageThumbs[i-1][0] = url;
  306.     pageThumbs[i-1][1] = imgurl;
  307.     pageThumbs[i-1][2] = title;
  308.  
  309.     //set title
  310.     var tid = getObject('Title' + i);
  311.     if(tid){
  312.         tid.outerHTML    = "<span id='Title"+i+"' style='float:left;width:0px;display:block'>"+title+"</span>";
  313.     }
  314.  
  315.     //set img
  316.     var el = getObject("imgshow"+i);
  317.     try {
  318.         el.getElementsByTagName("img")[0].src=imgurl;
  319.     } catch (ex) {
  320.         el.innerHTML = getData("image", {"index":i})
  321.         el.getElementsByTagName("img")[0].src=imgurl;
  322.         el.getElementsByTagName("a")[0].href=url;
  323.     }
  324.     getObject("box-bottons-inner"+i).innerHTML= getData("buttons", {"index":i});
  325.  
  326. }
  327.  
  328. function resizeContent()
  329. {
  330.     for (var i=1; i<pageCount+1; i++) {
  331.       try{
  332.         getObject("imgshow"+i).style.height=getH()+'px';
  333.         getObject("imgshow"+i).style.width=getW()+'px';
  334.       } catch(ex) {}
  335.     }  
  336. }
  337.  
  338. var startSwap=0;
  339. function swap(toIndex) {
  340.     getObject("img_souris").style.display="none";
  341.     if (startSwap != 0) {
  342.         var startIndex = startSwap; startSwap = 0;
  343.         if (toIndex == startIndex) { return true; }
  344.         var Info1 = pageThumbs[toIndex-1].join("\n").split("\n");
  345.         var Info2 = pageThumbs[startIndex-1].join("\n").split("\n");
  346.         closeBox(startIndex); closeBox(toIndex);
  347.         setTimeout(function() {
  348.             if (Info1[0]!="") { 
  349.                 onCaptureImage(startIndex, Info1[0], Info1[1], Info1[2]);
  350.             }
  351.             if (Info2[0]!="") {
  352.                 onCaptureImage(toIndex, Info2[0], Info2[1], Info2[2]);
  353.             }
  354.             savePrefs();
  355.         }, 100)
  356.     }
  357.     return true;
  358. }
  359.  
  360. function mouse()
  361. {
  362.     try {
  363.     if(getObject)
  364.     {
  365.         getObject("img_souris").style.left = event.clientX+10 + document.body.scrollLeft;
  366.         getObject("img_souris").style.top = event.clientY+10 + document.body.scrollTop;
  367.     }
  368.     else if(document.all)
  369.     {
  370.         document.all["img_souris"].style.left = event.clientX+10 + document.body.scrollLeft;
  371.         document.all["img_souris"].style.top = event.clientY+10 + document.body.scrollTop;
  372.     }} catch(ex) {}
  373. }
  374. document.onmousemove = mouse;
  375.  
  376. window.onload = function loadContent()
  377. {
  378.     if(navigator.userLanguage &&  navigator.userLanguage == "zh-cn") {
  379.         var searchForm = getObject("search_form");
  380.         searchForm.action = "http://www.google.cn/search";
  381.         var text = "<input type=\"hidden\" name=\"hl\" value=\"zh-CN\" /><input type=\"hidden\" name=\"client\" value=\"aff-ie7pro\" />";
  382.         searchForm.insertAdjacentHTML("beforeEnd", text);
  383.         getObject("search_logo").src = "img/google.gif";
  384.     }
  385.  
  386.     //startList();
  387.     easyHome = PRO_easyHome();
  388.  
  389.     for (var name in localeTable){
  390.         var str = easyHome.getString(name);
  391.         if(str != '') localeTable[name] = str;
  392.     }
  393.  
  394.     var i;
  395.     document.title = localeTable['home_title'];
  396.     try {
  397.     getObject('search_submit').value = localeTable['search_submit'];
  398.     getObject('home_config').innerHTML = localeTable['home_config'];
  399.     getObject('home_newtab').innerHTML = localeTable['home_newtab'];
  400.     getObject('home_showsearch').innerHTML = localeTable['home_showsearch'];
  401.     getObject('home_background').innerHTML = localeTable['home_background'];    
  402.     getObject('input_submit').value = localeTable['input_ok'];
  403.     getObject('home_layout').innerHTML = localeTable['home_layout'];
  404.     } catch(ex) {}
  405.     for(i=1; i < pageCount+1; i++){
  406.         var addtipobj = getObject('home_addtip'+i);
  407.         if(addtipobj) {
  408.             addtipobj.innerHTML = localeTable['home_addtip'];
  409.         }
  410.     }
  411.  
  412.     var s = easyHome.homePrefs;
  413.     var urls = s.split('\n');
  414.     for(i=0; i < pageCount; i++){
  415.         if(i<urls.length) pageThumbs[i][0] = urls[i];
  416.         else pageThumbs[i][0] = '';
  417.     }
  418.  
  419.     easyHome.oncapturefinish = onCaptureImage;
  420.     for(i=1; i<pageCount+1; i++){
  421.         if(pageThumbs[i-1][0] != '') {
  422.             var el = getObject("imgshow"+i);
  423.             if (el) {
  424.                 el.innerHTML = getData("image", {"index":i})
  425.             el.getElementsByTagName("a")[0].href=pageThumbs[i-1][0];
  426.                 var iid = getObject('Image' + i);
  427.                 if(iid){
  428.                     iid.src = "img/loading.gif";
  429.                 }
  430.                 if (mustUpdate(i)) {
  431.                     refreshBox(i);
  432.                 } else {
  433.                     easyHome.captureImage(i, pageThumbs[i-1][0], false, 30);
  434.                 }
  435.             }
  436.             getObject("box-bottons-inner"+i).innerHTML= getData("buttons", {"index":i});
  437.         }
  438.     }
  439.     try {
  440.         newTab=(PRO_getValue("EasyHome_newTab", "true")=="true");
  441.         searchBar=(PRO_getValue("EasyHome_searchBar", "true")=="true");
  442.         BackgroundOpen=(PRO_getValue("EasyHome_BackgroundOpen", "true")=="true");
  443.         pageCount = parseInt(PRO_getValue("EasyHome_pageCount","9"));
  444.         rows = parseInt(PRO_getValue("EasyHome_rowsCount","3"));
  445.         cols = parseInt(PRO_getValue("EasyHome_colsCount","3"));
  446.     } catch (ex) {}
  447.     getObject("check1").checked=newTab;
  448.     getObject("check2").checked=searchBar;
  449.     getObject("check4").checked=BackgroundOpen;
  450.     
  451.     function ssv(id,v) {
  452.         var sel = getObject(id);
  453.         for (var i=0; i<sel.options.length; i++) {
  454.             if (sel.options[i].text==v) {
  455.                 sel.selectedIndex=i;
  456.                 return true;
  457.             }
  458.         }
  459.         return false;
  460.     }
  461.     
  462.     ssv("rowsCount", String(rows));
  463.     ssv("colsCount", String(cols));
  464.     
  465.     saveSettings();
  466.     
  467.     resizeContent();
  468.     window.attachEvent('onresize', resizeContent);
  469. }
  470.  
  471. function getH() {
  472.     var h = document.documentElement.offsetHeight;
  473.     if (document.compatMode=="BackCompat") {
  474.         h = document.body.offsetHeight;
  475.     }
  476.     if (rows==1) {
  477.         h = parseInt((h-(275*(rows/3)))/rows) - 70
  478.     } else if (rows==2) {
  479.         h = parseInt((h-(275*(rows/3)))/rows) - 25
  480.     } else if (rows==3) {
  481.         h = parseInt((h-(275*(rows/3)))/rows) - 7
  482.     } else if (rows==4) {
  483.         h = parseInt((h-(275*(rows/3)))/rows)
  484.     } else if (rows==5) {
  485.         h = parseInt((h-(275*(rows/3)))/rows)
  486.     } else if (rows==6) {
  487.         h = parseInt((h-(275*(rows/3)))/rows)
  488.     }
  489.     if (!searchBar) {
  490.         h += parseInt(50/rows);
  491.     }
  492.     return (h);
  493.     // return (((h-295))/4)+"px";
  494. }
  495. function getW() {
  496.     var w = document.documentElement.offsetWidth;
  497.     if (document.compatMode=="BackCompat") {
  498.         w = document.body.offsetWidth;
  499.     }
  500.  
  501.     if (cols==1) {
  502.         w = parseInt((w-(275*(cols/3)))/cols) - 70
  503.     } else if (cols==2) {
  504.         w = parseInt((w-(275*(cols/3)))/cols) - 25
  505.     } else if (cols==3) {
  506.         w = parseInt((w-(275*(cols/3)))/cols) - 7
  507.     } else if (cols==4) {
  508.         w = parseInt((w-(275*(cols/3)))/cols) + 14
  509.     } else if (cols==5) {
  510.         w = parseInt((w-(275*(cols/3)))/cols) + 17
  511.     } else if (cols==6) {
  512.         w = parseInt((w-(275*(cols/3)))/cols) + 20
  513.     }
  514.     if (!searchBar) {
  515.         w += parseInt(50/cols);
  516.     }
  517.  
  518.       return (w);
  519. }
  520.  
  521. //setInterval(function() { try { window.recalc(); } catch (ex) {} }, 100);
  522.  
  523.  
  524. document.attachEvent("onmousedown", function onMouseDown(e) {
  525.     var midb = false;
  526.     var e=window.event;
  527.     if (window.event) {
  528.         midb = ((window.event.button==3) || (window.event.button==4));
  529.     } else {
  530.         midb = (e.which==2);
  531.     }
  532.     if (midb) {
  533.         e.returnValue = false;
  534.         e.cancelBubble = true;
  535.         for (var i=1; i<pageCount+1; i++) {
  536.             if (getObject("ibox"+i).focus()) {
  537.                 openBox(i, e);
  538.                 return false;
  539.             }
  540.         }
  541.         return false;
  542.     }
  543.     return true;
  544. });
  545.  
  546. var dlgOpacity=10;
  547. function setDlgOpacity() {
  548.     try {
  549.         if (getObject("dlg").style.display=="none") {
  550.             dlgOpacity=10;
  551.         } else if (dlgOpacity<45) {
  552.             dlgOpacity++;
  553.         }
  554.         getObject("dlg").style.filter="alpha(opacity="+dlgOpacity+")";
  555.     } catch (ex) {}
  556. }
  557. //setInterval(setDlgOpacity, 50);
  558.  
  559.  
  560. function setUpdateTime(index, time) {
  561.     PRO_setValue("EasyHome_"+index+"_time",time)
  562. }
  563.  
  564. function getUpdateTime(index) {
  565.     return parseInt(PRO_getValue("EasyHome_" + index + "_time","-1"));
  566. }
  567.  
  568. function getLastUpdate(index) {
  569.     return parseInt(PRO_getValue("EasyHome_" + index + "_update","0"));
  570. }
  571.  
  572. function setLastUpdate(index, time) {
  573.     PRO_setValue("EasyHome_" + index + "_update",time);
  574. }
  575.  
  576. function mustUpdate(index) {
  577.     var lastTime = getLastUpdate(index);
  578.     var updateTime = getUpdateTime(index);
  579.     if (updateTime==(-1)) { return false; }
  580.     if ((new Date()).getTime() - lastTime > updateTime) {
  581.         return true;
  582.     }
  583.     return false;
  584. }
  585.  
  586. setInterval(function() {
  587.     for (var index=1; index<pageCount+1; index++) {
  588.         if (mustUpdate(index)) {
  589.             refreshBox(index);
  590.         }
  591.     }
  592. }, 6000);
  593.  
  594.  
  595.         document.pressedText=""; document.onKeyPressTimer=0;
  596.         document.attachEvent("onkeypress", function onKeyPress() {
  597.             if(event.srcElement.tagName == "INPUT") return;
  598.             var chr = String.fromCharCode(event.keyCode);
  599.             clearTimeout(document.onKeyPressTimer);
  600.             if ((/[0-9]/).test(chr)) {
  601.                 document.pressedText+=chr;
  602.                 document.onKeyPressTimer=setTimeout(function() {
  603.                     var index = (parseInt(document.pressedText));
  604.             var url;
  605.             try {url = pageThumbs[index-1][0];} catch(ex){}
  606.                     if(url!="") { openURL(url); }
  607.                     document.pressedText="";
  608.                 }, 333)
  609.             } else {
  610.                 document.pressedText="";
  611.             }
  612.         })